Hướng đối tượng trong Lisp Lisp

Mặc dù được phát triển với định hướng ban đầu là lập trình hàm, ngôn ngữ Lisp cũng được bổ sung các tính năng cho phép lập trình hướng đối tượng. Chẳng hạn với Common Lisp, hướng đối tượng được thể hiện qua CLOS, với các tính năng cơ bản là[1]:

  • Định nghĩa các lớp
  • Tạo các đối tượng trong mỗi lớp
  • Định nghĩa các phương thức và hàm tổng quát.

Một ví dụ cụ thể với việc định nghĩa một lớp person với các giá trị mặc định tên là bill và 10 tuổi như sau:

(defclass person ()  ((name:accessor person-name:initform 'bill:initarg:name)   (age:accessor person-age:initform 10:initarg:age)))